/*
 * InclusaoContatoPresenter.java
 * Versão: 1.0
 * Data de Criação: 10/09/2014
 * Copyright(c) Felipe Secato.  Todos os direitos reservados.
 */

package contatos.presenter;

import javax.swing.JOptionPane;
import contatos.model.Contato;

/**
 * Presenter responsavel por incluir um novo contato
 *
 * @author felipe secato
 * @version 1.0
 * @see ManterContatoPresenter
 */
public class InclusaoContatoPresenter extends ManterContatoPresenter {

    public InclusaoContatoPresenter() {

        super();
        
        //escondendo o botao de editar
        view.getBtnEditar().setVisible(false);
        
        view.setVisible(true);
    }


    @Override
    void manterPessoa() {
        String nome = view.getTxtNome().getText();
        String telefone = view.getTxtTelefone().getText();
        String operadora = view.getTxtOperadora().getText();
        String uf = view.getTxtUF().getText();

        try {
            if ((!nome.equals("")) && (view.getTxtTelefone().isEditValid())
                    && !operadora.equals("") && (view.getTxtUF().isEditValid())) {
                String nomes[] = nome.split(" ");
                if (nomes.length > 1) {
                    for (String nome1 : nomes) {
                        if (nome1.trim().length() == 0) {
                            throw new Exception("É necessário um nome e sobrenome");
                        }
                    }
                } else {
                    throw new Exception("É necessário um nome e sobrenome");
                }

                Contato p = new Contato(nome, telefone, operadora, uf);
                if (!contatos.incluir(p)) {
                    throw new Exception("Já existe um contato com esse número de telefone");
                } else {
                    JOptionPane.showMessageDialog(view, nome + " cadastrado com sucesso!");
                    view.getTxtNome().setText("");
                    view.getTxtTelefone().setText("");
                    view.getTxtOperadora().setText("");
                    view.getTxtUF().setText("");
                    view.getTxtNome().requestFocus();
                }
            } else {
                throw new Exception("Você precisa informar todos os campos");
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(view, e.getMessage());
        }
    }
}
